/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cx1.dao.api;

import java.util.List;
import org.cx1.model.Amenity;
import org.cx1.model.Listing;
import org.cx1.model.Photo;
import org.cx1.model.Place;
import org.cx1.model.utils.SearchOption;

/**
 *
 * @author tina
 */
public interface IListingDao {
    
    
    public int countFiltered(SearchOption searchOption);
    
    public List<Listing> getFiltered(SearchOption searchOption);
    
    public List<Listing> getFilteredVerified(SearchOption searchOption);
    
    public List<Listing> getAll();
    
    public Listing getById(String id);
    
    public String add(Listing listing);
    
    public int update(Listing listing);
    
    public int deleteById(String id);
    
    
    public List<String> getAllAmenityRefIDs(String listingID);
    
    public String addAmenityRef(String listingID, String amenityID);
    
    public int deleteAllAmenityRef(String listingID);
    
    
    public List<String> getAllPlaceRefIDs(String listingID);
    
    public String addPlaceRef(String listingID, String placeID, String placeTypeID);
    
    public int deleteAllPlaceRef(String listingID);
    
    
    public int incrementImpressions(String listingID);
        
    public int incrementViews(String listingID);
    
}
